Proving Equality between Streams
نویسنده
چکیده
Infinite lists, or streams are often used in mathematical problems. We investigate three models to represent these streams in Coq, a proof assistant. For each of these models we investigate what it means for streams to be equal, and how we can prove these stream equalities. In the two most fruitful models we represent streams using a coinductive type, which means coinduction is crucial in our proofs. As manual proofs become rather large, even for small examples, we present fully automated tactics to prove these stream equalities.
منابع مشابه
Proving Equality of Streams Automatically
Streams are infinite sequences over a given data type. A stream specification is a set of equations intended to define a stream. In this paper we focus on equality of streams, more precisely, for a given set of equations two stream terms are said to be equal if they are equal in every model satisfying the given equations. We investigate techniques for proving equality of streams suitable for au...
متن کاملEquality of Streams is a Π 02 - Complete Problem ∗
This paper gives a precise characterization for the complexity of the problem of proving equal two streams defined with a finite number of equations: Π2. Since the Π 0 2 class includes properly both the recursively enumerable and the co-recursively enumerable classes, this result implies that neither the set of pairs of equal streams nor the set of pairs of unequal streams is recursively enumer...
متن کاملEquality of Streams is a Π2-Complete Problem
This paper gives a precise characterization for the complexity of the problem of proving equal two streams defined with a finite number of equations: Π2. Since the Π2 class includes properly both the recursively enumerable and the co-recursively enumerable classes, this result implies that one can find no mechanical procedure to say when two streams are equal, as well as no procedure to say whe...
متن کاملCo-inductive Proofs for Streams in PVS
We present an implementation in the theorem prover PVS of co-inductive stream calculus. Stream calculus can be used to model signal flow graphs, and thus provides a nice mathematical foundation for reasoning about properties of signal flow graphs, which are again used to model a variety of systems such as digital signal processing. We show how proofs by co-induction are used to prove equality o...
متن کاملSwinging Data Types { the Dielectic between Actions and Constructors {
final initial Abstract Initial structures are good for modelling constructor-based data types because they t the intuition about these types and admit resolution-and rewrite-oriented inductive theorem proving. The corresponding speciication and veriication methods do not comply so well with non-free or permutative types such as sets, bags and maps and are still less appropriate when innnite str...
متن کامل